﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

namespace _02WPF_DependencyProperties
{
    //1、创建类继承DependencyObject类
    public class Person:DependencyObject
    {
        //2、声明一个public static readonly的dependencyproperty，该变量就是真正的依赖属性。
       public static readonly DependencyProperty NameProperty = DependencyProperty.Register(
            "PropertyType", typeof(string), typeof(Person), new PropertyMetadata("Learning",OnValueChanged));

       private static void OnValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
       {
           //当只发生改变时回调的方法


       }

       //提供一个依赖属性的包装属性，通过这个属性来完成对依赖属性的读写操作
       //属性包装器，通过它来读写和设置我们刚才注册时的依赖属性
       public string Name
        {
            get { return (string) GetValue(NameProperty); }
            set { SetValue(NameProperty, value); }
        }
        
    }
}
